The present invention relates generally to integrated circuit designs, and more particularly to methods for implementing on-chip resistance monitoring for electrical fuses.
Fuse elements are widely used in semiconductor memory devices. In a typical application, a plurality of fuse elements are employed in a semiconductor memory device, e.g., a dynamic random access memory (DRAM) device. In general, each of the fuse elements includes a fuse which is selectively opened or severed in order to thereby selectively disconnect the corresponding fuse element from the remainder of the circuit. The process of opening or severing a fuse is sometimes referred to as “blowing a fuse.”
There are two basic techniques currently in use for blowing a fuse. Namely, a laser can be used to irradiate (burn) the fuse until it is opened, or an electrical current which dissipates sufficient heat to open the fuse (i.e., an electrical “overcurrent”) can be used. The process of opening a fuse of a fuse element (which typically also includes at least a MOS transistor) is frequently referred to as “programming” the fuse element. Unlike using the laser, the technique of programming a fuse element by using an electrical overcurrent can be performed even after the device has been packaged. The technique of programming a fuse element by using an electrical overcurrent to blow the fuse thereof will be hereinafter referred to as “electrically programming” the fuse element, and the fuse element which is susceptible to such programming will hereinafter be referred to as an “electrically programmable fuse element” or simply e-fuse.
The e-fuse in the semiconductor devices may be a poly fuse, MOS capacitor anti-fuse, diffusion fuse, or contact anti-fuse, and can be programmed into high resistance state. For example, they can be used in an integrated circuit for chip ID, or serial number. Most fuses can only be programmed once to provide 0 or 1 states corresponding to high or low resistance states or vice versa.
However, the resistance value of electrical fuses must be read before and after programming, since the resistance value of an electrical fuse helps to determine whether or not the electrical fuse has been programmed. The ability to obtain an accurate resistance value for an electrical fuse can also lessen the chance of programming failure. Since electrical fuses require a high current to break during programming, by knowing the resistance of a specific fuse, the exact voltage needed to break the fuse can be calculated, thereby ensuring that the fuse will break during programming.
Conventional methods to monitor resistance of electrical fuses can only output logic states of “0” or “1” rather than giving an exact resistance value. While detecting the resistance states of the fuses, since a fuse is “hidden” in a fuse macro, and the resistance value is also hidden, only the logic states are brought out for examination. As such, the process for programming and debugging becomes much more difficult.
Therefore, desirable in the art of electrical fuse monitoring are additional methods and designs that enable an accurate monitoring of resistance values for electrical fuses, thereby increasing programming accuracy.